Low complexity error correction using cyclic redundancy check (CRC)

ABSTRACT

Low complexity error correction using cyclic redundancy check (CRC). Communications between communication devices, sometimes including at least one redundant transmission from a transmitter to a receiver, undergo low complexity error correction. CRC may be employed in conjunction with using any desired type of ECC or using uncoded modulation. Based on CRC determined bit-errors, as few as a singular syndrome associated with a singular bit-error or a linear combination of syndromes associated with two or more singular bit-errors within two or more received signal sequences are employed to perform error correction of the received signal. Real time combinations of multiple syndromes associated with respective single bit-errors (that may themselves be calculated off-line) are employed in accordance with error correction. In addition to CRC, any ECC may be employed including convolutional code, RS code, turbo code, TCM code, TTCM code, LDPC code, or BCH code.

CROSS REFERENCE TO RELATED PATENTS/PATENT APPLICATIONS

Continuation priority claim, 35 U.S.C. §120 The present U.S. UtilityPatent Application claims priority pursuant to 35 U.S.C. §120, as acontinuation, to the following U.S. Utility patent application which ishereby incorporated herein by reference in its entirety and made part ofthe present U.S. Utility patent application for all purposes:

1. U.S. Utility patent application Ser. No. 13/007,020, entitled “Lowcomplexity error correction using cyclic redundancy check (CRC),” filedJan. 14, 2011, pending, and scheduled subsequently to be issued as U.S.Pat. No. 8,522,121 on Aug. 27, 2013 (as indicated in an ISSUENOTIFICATION mailed from the USPTO on Aug. 7, 2013), which claimspriority pursuant to 35 U.S.C. §119(e) to the following U.S. ProvisionalPatent Application which is hereby incorporated herein by reference inits entirety and made part of the present U.S. Utility patentapplication for all purposes:

1.1. U.S. Provisional Patent Application Ser. No. 61/306,031, entitled“Low complexity error correction using cyclic redundancy check (CRC) andredundant bit streams,” filed Feb. 19, 2010.

BACKGROUND OF THE INVENTION Technical Field of the Invention

The invention relates generally to communication systems; and, moreparticularly, it relates to communication systems operating using cyclicredundancy check (CRC) and, sometimes, at least one redundanttransmission therein, to perform error detection and correction.

Description of Related Art

Data communication systems have been under continual development formany years. One such type of communication system that has been ofsignificant interest lately is a communication system that employsiterative error correction codes (ECCs) that operate in accordance withforward error correction (FEC). There are a variety of types of ECCsthat may be employed in accordance with various communication systems(e.g., that seek to transmit information from one end of a communicationlink to another). Communications systems with iterative ECCs are oftenable to achieve lower bit error rates (BER) (or block error rate (BLER)in the context of block codes) than alternative codes for a given signalto noise ratio (SNR).

A continual and primary directive in this area of development has beento try continually to lower the SNR required to achieve a given BER (orBLER) within a communication system. The ideal goal has been to try toreach Shannon's limit in a communication channel Generally, Shannon'slimit may be viewed as being the data rate to be used in a communicationchannel having a particular SNR that achieves error free transmissionthrough the communication channel. In other words, the Shannon limit isthe theoretical bound for channel capacity for a given modulation andcode rate.

Generally speaking, within the context of communication systems thatemploy ECCs, there is a first communication device at one end of acommunication channel with encoder capability and second communicationdevice at the other end of the communication channel with decodercapability. In many instances, one or both of these two communicationdevices includes encoder and decoder capability (e.g., within abi-directional communication system). ECCs can be applied in a varietyof additional applications as well, including those that employ someform of data storage (e.g., hard disk drive (HDD) applications and othermemory storage devices) in which data is encoded before writing to thestorage media, and then the data is decoded after being read/retrievedfrom the storage media.

While there has been significant and ongoing development in the contextof communication systems for some time, there nonetheless continues tobe great effort directed to increasing the amount of information thatmay be transmitted through a communication channel (e.g., from a firstcommunication device location at one end of the communication channel toa second communication device located at the other end of thecommunication channel) with lower error rates. There is a seeminglycontinual desire to transmit more and more information via acommunication channel with lower and lower error rates. In spite ofthis, the prior art still does not provide adequate means by which thismay be effectuated, and there seems to be a virtually limitless bound inthe desire to transmit ever more information with ever lower errorrates.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 and FIG. 2 illustrate various embodiments of communicationsystems.

FIG. 3 illustrates an embodiment of a communication system operating inaccordance with redundant transmissions.

FIG. 4 illustrates an embodiment of a communication device operative toperform transmission of a signal.

FIG. 5 illustrates an embodiment of a communication device operative toperform receipt of a signal.

FIG. 6 illustrates an embodiment of an operations and functionalitywithin a cyclic redundancy check (CRC) error correction (EC) decoder.

FIG. 7 illustrates an embodiment of one or more possible errors locatedwithin redundant signal sequences.

FIG. 8 illustrates an alternative embodiment of one or more possibleerrors located within redundant signal sequences.

FIG. 9 illustrates an embodiment of possible values that may becalculated to correct for errors located within redundant signalsequences.

FIG. 10A illustrates an embodiment of an apparatus that is operative toperform error correction using cyclic redundancy check (CRC) andredundant bit streams.

FIG. 10B illustrates an embodiment of an apparatus that is operative toperform error correction using CRC and redundant bit streams.

FIG. 11 illustrates an embodiment of a method for performing errorcorrection using CRC and redundant bit streams.

FIG. 12A illustrates an embodiment of a method for selecting andidentifying at least one bit-error corresponding to at least onebit-error location.

FIG. 12B illustrates an embodiment of an alternative method forselecting and identifying at least one bit-error corresponding to atleast one bit-error location.

FIG. 13A illustrates an embodiment of a method for identifying failureof error correction using CRC and redundant bit streams.

FIG. 13B illustrates an embodiment of a method for performing additionalECC decoding in accordance with error correction using CRC and redundantbit streams.

FIG. 14 illustrates an embodiment of a performance diagram correspondingto error correction using CRC and redundant bit streams.

FIG. 15 illustrates an embodiment of a diagram corresponding to CRCfalse pass rate for different retransmission schemes.

FIG. 16 illustrates an embodiment of a diagram corresponding to CRC passrate as a function of the XOR map maximum complexity.

FIG. 17 illustrates an embodiment of a diagram corresponding to speechquality for different retransmission and error concealment schemes.

DETAILED DESCRIPTION OF THE INVENTION

A novel approach for performing error detection and correction ispresented herein for use in communication systems that operate usingcyclic redundancy check (CRC). In some instance, more than onetransmission (e.g., at least one redundant transmission) sent from asending or transmitting communication device to a receivingcommunication device is employed and properties associated with at leasttwo transmissions (e.g., including at least one redundant transmission)are employed to identify possible error locations therein. For examples,such properties associated with at least two transmissions (e.g.,including at least one redundant transmission) can include comparisonsand/or processing of those at least two transmissions includingperforming XOR processing comparison of them.

In other instances, as few as a single transmission may be employed andproperties associated with bits and/or symbols of that singletransmission are used to identify possible error locations therein. Forexamples, such properties associated with a single transmission caninclude metrics, soft information, confidence levels (e.g., asassociated with Viterbi detection or decoding), etc. Therefore, such lowcomplexity error correction in accordance with various aspects of theinvention can be applied across a wide variety of applications,communication systems, etc.

With respect to a multiple transmission embodiment, while as few as asingle retransmission (or a single redundant stream) in conjunction withan original transmission may be employed in certain embodiments, thevarious aspects of the invention presented herein are of courseapplicable to communication systems operating using multipleretransmissions (or multiple redundant streams) in conjunction with anoriginal transmission. It is noted that terminologies such as bitstream, stream, signal sequence, etc. (or their equivalents) may be usedinterchangeably to describe digital information whose contentcorresponds to any of a number of desired types (e.g., data, video,speech, audio, etc. any of which may generally be referred to as‘data’).

CRC may be used for use in accordance with error detection (e.g., asopposed to performing not only detection but also correction). A requestfrom a receiver for transmission of a redundant signal (e.g., aretransmission) to be made by a transmitter may be made based on a CRCcheck of a first signal failing (e.g., not equaling to zero). In someembodiments, when an error has been detected, bit flipping may beperformed for correcting errors associated with the one or moreidentified error locations, but the use of bit flipping may be limitedin certain contexts because, from certain perspectives, the CRC may needto be recomputed every time for each possible permutation of the signalsequence in which one of the bits has been flipped.

In addition, the correction capability of CRC is often viewed as beinglimited by the Hamming Distance (HD) of the CRC. As a result, while CRCdoes in fact have efficacy to detect the presence of one or more errorsin a transmission, CRC may be the triggering event to requestretransmission (e.g., if errors are found to be present in one of thetransmissions in accordance with a CRC check). Herein, CRC can beemployed also for performing error correction (in addition to mere errordetection). Stated another way, a novel approach is presented herein forcombining redundant bit-streams, or for using some informationassociated with the bits and/or symbols of a single bit-stream, having arespective CRC therein, to perform not only detection of errors therein,but also to correct any bit-errors therein. In some instances, theperformance provided by this approach far exceeds that provided by otherECCs.

This novel approach presented herein has a relatively low complexitywhen compared to other error correction techniques, is sourceindependent, and is also easily implementable across platforms making itsuitable for a wide range of applications across a wide range ofcommunication system types and communication device types. For example,because of the source independence of the approach presented herein, theerror correction approach presented herein may be applied to any type ofcommunication system operating on any type of digital information (e.g.,data, video, speech, audio, etc. any of which may generally be referredto as ‘data’). The error correction approach operates on a bit basis,and as such, can be easily implemented to treat and deal with any typeof communication system that operates by transmitting digitalinformation from a first location to a second location.

Moreover, the techniques may be applied to any communications systemthat operates using a single transmission of digital information orthose employing at least one redundant copy of that digitalinformation+the CRC. For example, various communication schemes mayoperate using some form of communication scheme employing at least oneredundant transmission (e.g., at least one retransmission). There are avariety of factors that may trigger such a redundant transmission (e.g.,a CRC check or failure thereof), and regardless of the precipitating orcausal parameter that results in at least one redundant transmission,various aspects of the error correction techniques presented herein(using CRC in conjunction with at least one redundant stream) may bebroadly applied across communication systems in which at least tworedundant transmissions are employed (e.g., at least one transmissionthat is redundant with respect to one another transmission launched intothe communication channel from a sending communication device). Ofcourse, each of the at least two transmissions, while being identical incontent at the transmitting end of the communication channel, may beaffected differently during transmission via the communication channel(e.g., each respective transmission may be affected by different amountsof noise, jitter, spreading, etc. during transmission via thecommunication channel, such as when the operational characteristics of acommunication channel are dynamic). As such, while the two transmissionsare identical at the sending end of the communication channel, they maybe different at the receiving end of the communication channel. Also,the processing at the receiving end of the communication channel ofvarious received signals may be different (in rare instances), and thismay undesirably affect the two streams differently (e.g., a samplingerror, a glitch or otherwise as related to some operational parameterwithin the receiving communication device).

In the context of communication systems employing retransmissions,failed or successive transmissions (e.g., including one or more errors)may be stored at the receiving communication device to obtain themultiple copies of the transmissions for use in accordance with thevarious aspects of error correction presented herein. For example, onesuch communication system that operates in accordance with this complieswith Bluetooth recommended standards and/or protocols. In even othercommunication systems, the digital information may be transmittedmultiple times from the sending communication device to the receivingcommunication device without any request from the receivingcommunication device (e.g., retransmitted without being prompted by thereceiving communication device). The error correction approach beingpresented herein may generally be applied to any communication system inwhich retransmission of at least one redundant signal stream is made,regardless of the reason that results in or causes the at least oneredundant transmission.

Generally speaking, the goal of digital communications systems is totransmit digital data from one location, or subsystem, to another eithererror free or with an acceptably low error rate. As shown in FIG. 1,data may be transmitted over a variety of communications channels in awide variety of communication systems: magnetic media, wired, wireless,fiber, copper, and other types of media or any combination thereof aswell.

FIG. 1 and FIG. 2 illustrate various embodiments of communicationsystems, 100 and 200, respectively.

Referring to FIG. 1, this embodiment of a communication system 100 is acommunication channel 199 that communicatively couples a communicationdevice 110 (including a transmitter 112 having an encoder 114 andincluding a receiver 116 having a decoder 118) situated at one end ofthe communication channel 199 to another communication device 120(including a transmitter 126 having an encoder 128 and including areceiver 122 having a decoder 124) at the other end of the communicationchannel 199. The respective receivers 116 and 122, including theirrespective decoders 118 and 124 therein, are operative to employ cyclicredundancy check (CRC), soft information (e.g., such as associated witha given, singular bit stream), and/or redundant bit streams whenprocessing received signals in accordance with the various aspectspresented herein. In some embodiments, either of the communicationdevices 110 and 120 may only include a transmitter or a receiver. Thereare several different types of media by which the communication channel199 may be implemented (e.g., a satellite communication channel 130using satellite dishes 132 and 134, a wireless communication channel 140using towers 142 and 144 and/or local antennae 152 and 154, a wiredcommunication channel 150, and/or a fiber-optic communication channel160 using electrical to optical (E/O) interface 162 and optical toelectrical (O/E) interface 164)). In addition, more than one type ofmedia may be implemented and interfaced together thereby forming thecommunication channel 199.

To reduce transmission errors that may undesirably be incurred within acommunication system, error correction and channel coding schemes areoften employed. Generally, these error correction and channel codingschemes involve the use of an encoder at the transmitter and a decoderat the receiver.

Any of the various types of coding described herein can be employedwithin any such desired communication system (e.g., including thosevariations described with respect to FIG. 1), any information storagedevice (e.g., hard disk drives (HDDs), network information storagedevices and/or servers, etc.) or any application in which informationencoding and/or decoding is desired.

Referring to the communication system 200 of FIG. 2, at a transmittingend of a communication channel 299, information bits 201 are provided toa transmitter 297 that is operable to perform encoding of theseinformation bits 201 using an encoder and symbol mapper 220 (which maybe viewed as being distinct functional blocks 222 and 224, respectively)thereby generating a sequence of discrete-valued modulation symbols 203that is provided to a transmit driver 230 that uses a DAC (Digital toAnalog Converter) 232 to generate a continuous-time transmit signal 204and a transmit filter 234 to generate a filtered, continuous-timetransmit signal 205 that substantially comports with the communicationchannel 299. The transmit driver 230 may perform any necessary front endprocessing of a signal received from a communication channel (e.g.,including any one or digital to analog conversion, gain adjustment,filtering, frequency conversion, etc.) to generate the filtered,continuous-time transmit signal 205.

At a receiving end of the communication channel 299, continuous-timereceive signal 206 is provided to an AFE (Analog Front End) 260 thatincludes a receive filter 262 (that generates a filtered,continuous-time receive signal 207) and an ADC (Analog to DigitalConverter) 264 (that generates discrete-time receive signals 208). TheAFE 260 may perform any necessary front end processing of a signalreceived from a communication channel (e.g., including any one or analogto digital conversion, gain adjustment, filtering, frequency conversion,etc.) to generate a digital signal provided to a metric generator 270that generates a plurality of metrics corresponding to a particular bitor symbol extracted from the received signal. The metric generator 270calculates metrics 209 (e.g., on either a symbol and/or bit basis) thatare employed by a decoder 280 to make best estimates of thediscrete-valued modulation symbols and information bits encoded therein210. As within other embodiments presented herein, the receiver 298,including the respective decoder 280 therein, is operative to employCRC, soft information (e.g., such as associated with a given, singularbit stream), and/or redundant bit streams when processing receivedsignals in accordance with the various aspects presented herein. As thereader may understand, such soft information may be employed withinembodiments employing redundant bit streams for providing even improvedconfidence in the location(s) of most likely (or potential) bit errorlocations.

The decoders of any of the various embodiments presented herein may beimplemented to include various aspects and/or embodiments of theinvention therein. In addition, several of the following Figuresdescribe other and particular embodiments (some in more detail) that maybe used to support the devices, systems, functionality and/or methodsthat may be implemented in accordance with certain aspects and/orembodiments of the invention.

It is noted that the transmitter 297 and the receiver 298, and/orindividual blocks therein, may include more or fewer components,modules, circuitries, etc. than as depicted in the diagram inalternative embodiments without departing from the scope and spirit ofthe invention.

It is also noted that various types of error correction codes (ECCs) maybe employed herein. For example, any one or more of any type or variantof a convolutional code, a Reed-Solomon (RS) code, a turbo code, a turbotrellis code modulation (TTCM) code, a low density parity check (LDPC)code, a BCH (Bose and Ray-Chaudhuri, and Hocquenghem) code, and/or anyother type of ECC as well, etc. Moreover, as will be seen in variousembodiments herein, more than one ECC and/or more than one type of ECCmay be employed when generating a single encoded signal in accordancewith the principles presented herein. For example, certain of theembodiments presented herein operate as product codes, in which an ECCis employed more than once or more than one type of ECC is employed(e.g., a first ECC during a first time and a second ECC at a secondtime) to generate an encoded signal.

Moreover, it is noted that both systematic encoding and non-systematicencoding may be performed in accordance with the various principlespresented herein. Systematic encoding preserves the information bitsbeing encoded and generates corresponding redundancy/parity bits (i.e.,redundancy and parity may be used interchangeably herein); for example,the information bits being encoded are explicitly shown/represented inthe output of non-systematic encoding. Non-systematic encoding does notnecessarily preserve the information bits being encoded and generatescoded bits that inherently include redundancy parity informationtherein; for example, the information bits being encoded need not beexplicitly shown/represented in the output of non-systematic encoding.While many of the embodiments shown herein refer to systematic encoding,it is noted that non-systematic encoding may alternatively, be performedin any embodiment without departing from the scope and spirit of theinvention.

FIG. 3 illustrates an embodiment of a communication system 300 operatingin accordance with redundant transmissions. A communication device 301and a communication device 302 are implemented for communications therebetween via a communication channel 399. Within this embodiment, aswithin others, the communication channel 399 itself may be of any typeof communication channel (e.g., magnetic media, wired, wireless, fiber,copper, and other types of media or any combination thereof as well).

The communication device 301 sends more than one transmission to thecommunication device 302 via the communication channel 399. Eachrespective transmission may be affected differently by the communicationchannel 399. For example, the transmission X1 as sent by thecommunication device 301 may arrive as being a communication channelmodified signal X1′. Analogously, the transmission X2 as sent by thecommunication device 301 may arrive as being a communication channelmodified signal X2′, and so on up to the transmission Xn as sent by thecommunication device 301 that may arrive as being a communicationchannel modified signal Xn′. In an embodiment that employs multipleredundant transmissions, the various transmissions X1, X2, and up to Xnmay be the very same as sent by the communication device 301 (e.g.,identical streams before being launched into the communication channel399). However, as each respective transmission may be affecteddifferently by the communication channel 399 (e.g., because thecommunication channel may be dynamic, in that, its characteristics arechange as a function of time), although each respective is identicalbefore being launched into the communication channel from thecommunication device 301, each may be different when arriving at thecommunication device 302.

In accordance with cyclic redundancy check (CRC), a number ofinformation bits, shown as M, and alternatively, referred to as amessage (the bits M may themselves be error correction code (ECC)encoded bits in some embodiments) is appended by one or more CRC bits,R, that are calculated based on the content of the information bits, M.Of course, while this embodiment shows the CRC bits being placed at theend of the frame or packet, it is noted that the CRC bits may be placedin different locations as opposed to at the end of the information bits,M, without departing from the scope and spirit of the invention. A briefreview of CRC is presented below for the convenience of the reader.

Generally, CRC is based on division in the ring of polynomials over thefinite field GF(2) (the integers modulo 2 finite field, where GFrepresents Galois Field), that is, the set of polynomials where eachcoefficient is either zero or one, and arithmetic operations wrap around(due to the nature of binary arithmetic).

Any string of bits can be interpreted as the coefficients of a messagepolynomial of this sort, and to find the CRC, the message polynomial ismultiplied by x^(n) and then the remainder is found when dividing by thedegree-n generator polynomial. The coefficients of the remainderpolynomial are the bits of the CRC.

This may be represented, in general form, as follows:M(x)·x ^(n) =Q(x)·G(x)+R(x),  (1)

where M(x) is the original message polynomial and G(x) is the degree-ngenerator polynomial. The bits of M(x)·x^(n) are the original messagewith n zeros added at the end. The CRC ‘checksum’ is formed by thecoefficients of the remainder polynomial R(x) whose degree is strictlyless than n. The quotient polynomial Q(x) is of no interest in mostembodiments.

In communication, a sending communication device (e.g., communicationdevice 301) attaches the n bits of R after the original message bits ofM, sending the following:D _(S)(x)=M(x)·x ^(n) −R(x).  (2)

The receiving communication device (e.g., communication device 302),knowing G(x) and therefore n, separates M from R and repeats thecalculation, comparing the computed remainder to the received one. Ifthey are equal, then the receiving communication device assumes thereceived message bits are correct (e.g., that the bits within themessage, M, are correct). Alternatively, the receiving communicationdevice can compute the remainder for the complete message. However,because of any deleterious effects incurred by the communication channel399, the received message may have been corrupted by bit-errors as shownbelow:D _(R)(x)=D _(S)(x)+E(x)  (3)

The receiving communication device then computesR _(R)(x)=REM{D _(R)(x)/G(x)}  (4)

where REM{·} is the remainder.

Alternatively, if there are no bit-errors, then D_(R)(x)=D_(R)(x) and

$\begin{matrix}\begin{matrix}{{R_{R}(x)} = {{REM}\left\{ {{D_{s}(x)}/{G(x)}} \right\}}} \\{= {{REM}\left\{ \frac{{{M(x)} \cdot x^{n}} - {R(x)}}{G(x)} \right\}}} \\{= {{REM}\left\{ \frac{{{Q(x)} \cdot {G(x)}} + {R(x)} - {R(x)}}{G(x)} \right\}}} \\{= {{REM}\left\{ {Q(x)} \right\}}} \\{= 0}\end{matrix} & (5)\end{matrix}$

Hence, if the remainder is zero, the receiving communication deviceassumes the received message bits are correct (e.g., no errors wereincurred within the message during its transmission via thecommunication channel 399).

It is again noted that the errors incurred during receipt at a receivingcommunication device 302, from the communication channel 399, may alsobe corrected (and not merely identified) using various aspects of theinvention presented herein. For example, assuming a signal sequence wastransmitted properly and without incurring any error during transmissionvia the communication channel 399, but assuming some error was incurredduring receipt or preliminary processing at or within the receivingcommunication device 302 (e.g., during demodulation, digital sampling,etc.), those errors may also be not only detected, but corrected, usingthe various aspects of the invention presented herein.

With respect to the checksum that is calculated in accordance with CRC,errors incurred during transmission via the communication channel andspecifically to particular bits within a transmitted signal sequence maybe discriminated by at least one syndrome calculated in accordance withthe CRC for each of the respective bits of the received signal sequence.

For example, if errors occur during transmission of a signal sequence,then D_(R)(x)≠D_(S)(x) andD _(R)(x)=D _(S)(x)+E(x)  (6)

where E(x) is the error polynomial. From the above equations, it followsthat:R _(R)(x)=REM{E(x)/G(x)}  (7)

The error polynomial can be written as:

$\begin{matrix}{{E(x)} = {\sum\limits_{k = 1}^{K}\;{C_{k} \cdot x^{k}}}} & (8)\end{matrix}$

where C_(k)=1 if there is a bit-error in the k^(th) bit of the message,and C_(k)=0 otherwise. The remainder can then be rewritten as follows:

$\begin{matrix}\begin{matrix}{{R_{R}(x)} = {{REM}\left\{ \frac{\sum\limits_{k = 1}^{K}{C_{k} \cdot x^{k}}}{G(x)} \right\}}} \\{= {{{REM}\left\{ \frac{C_{1} \cdot x}{G(x)} \right\}} + {{REM}\left\{ \frac{C_{2} \cdot x^{2}}{G(x)} \right\}} + \ldots + {{REM}\left\{ \frac{C_{K} \cdot x^{K}}{G(x)} \right\}}}} \\{= {{C_{1} \cdot S_{1}} + {C_{2} \cdot S_{2}} + \ldots + {C_{K} \cdot S_{K}}}}\end{matrix} & (9) \\{\mspace{79mu}{and}} & \; \\{\mspace{79mu}{S_{k} = {{REM}\left\{ {x^{k}/{G(x)}} \right\}}}} & (10)\end{matrix}$

is the syndrome produced by an error in the k^(th) bit position in the Kbit length received stream. As may be seen, respective syndromes may becalculated for errors (e.g., single bit errors) located in the variousrespective locations within various signal sequences. Suchpredetermined, pre-computed, pre-calculated syndrome informationassociated with single bit errors within each possible location withinmay be stored in memory for use in real time accessing and use incalculating any desired linear combination of syndromes to generate oneor more permutation syndromes that satisfy or correspond to theidentified error locations within at least one of the received bitstreams. Moreover, efficiency of searching through and calculating suchsyndrome combinations may be made using properties of Gray Coding in thesyndrome calculation operations. For example, in accordance with suchGray Coding, the combination or addition of two respective Gray Codedvalues can generate a third Gray Coded value. The use of such Gray Codeproperties can provide significant efficiency and speed by which suchsyndrome combinations may be made in accordance with such errordetection and correction.

An important reason for the desirability of CRC for detecting theaccidental alteration of data is the associated efficiency guarantee.Typically, an n-bit CRC, applied to a data block of arbitrary length,will detect any single error burst not longer than n bits, and willdetect a fraction 1−2^(−n) of all longer error bursts. In addition toburst errors, the use of CRC may also be applicable for detection ofisolated bit-errors. A Hamming weight N is the number of errors, out ofall possible message corruptions, that may go undetected by a CRC usinga particular polynomial. A set of Hamming weights captures theperformance for different numbers of bits corrupted in a message at aparticular data word length, with each successively longer data wordlength having set of Hamming weights with higher values. The firstnon-zero Hamming weight determines a code's Hamming Distance (HD). Mostof the popular CRCs can also detect all errors with an odd number ofbits by choosing G(x) with an even number of terms.

FIG. 4 illustrates an embodiment of a communication device 400 operativeto perform transmission of a signal. Information bits (e.g., again,which may generally be any type of information bits corresponding todata, video, speech, audio, etc. any of which may generally be referredto as ‘data’) are processed by the communication device 400. Theinformation bits are provided to an encoder circuitry 405 that processesthe information bits and generates error correction code (ECC) encodedbits there from. In embodiments that do not include or do not performECC encoding, uncoded information bits may be viewed as bypassing ECCencoding (e.g., bypassing an encoder circuitry 405 as shown in thisembodiment), and then undergoing subsequent processing appropriate togenerate a signal that may be transmitted via the communication channel.

When ECC is employed in a given embodiment, any desired type of ECC (orany combination thereof) may be employed by the encoder circuitry 405,including a convolutional code 405 a, a Reed-Solomon (RS) code 405 b, aturbo code 405 c, a trellis coded modulation (TCM) code 405 d, a turbotrellis coded modulation (TTCM) code 405 e, a low density parity check(LDPC) code 405 f, or a BCH (Bose and Ray-Chaudhuri, and Hocquenghem)code 405 g, any combination thereof, and/or any other type of ECC asgenerally shown by block 405 z.

These information bits (that may themselves have undergone ECC encoding)are then provided to a cyclic redundancy check (CRC) circuitry 410 thatis operative to process the information bits and calculated one or moreCRC bits based thereon. The output from the CRC circuitry 410 maygenerally be referred to as a signal sequence. This signal sequence isprovided to an analog front end (AFE) 430 that is operative to performany necessary processing to generate a signal that comportsappropriately with a communication channel. For example, the AFE 430 mayinclude any number of components therein (or perform any number ofoperations using such components). The AFE 430 may include a digital toanalog converter (DAC) 430 a, an analog filter 430 b, a digital filter430 c, a gain module 430 d, a frequency conversion module 430 e, and/orany other circuitry, module, etc. The AFE 430 may perform any necessaryfront end processing of a signal to be launched into and transmitted viaa communication channel (e.g., including any one or more of digital toanalog conversion, gain adjustment, filtering, frequency conversion,etc.) to generate a signal that appropriately comports with thecommunication channel and that may be transmitted thereby.

FIG. 5 illustrates an embodiment of a communication device 500 operativeto perform receipt of a signal. A signal, sent from a sendingcommunication device, is received from a communication channel. At areceiving end of the communication channel, a signal is provided to anAFE 530 that may perform any necessary front end processing of a signalthat is received from a communication channel (e.g., including any oneor more of analog to digital conversion, gain adjustment, filtering,frequency conversion, etc.) to generate a signal sequence that may beprocessed in accordance with the various aspects of error correctionpresented herein. For example, the AFE 530 may include any number ofcomponents therein (or perform any number of operations using suchcomponents). The AFE 530 may include an analog to digital converter(ADC) 530 a, an analog filter 530 b, a digital filter 530 c, a gainmodule 530 e, a frequency conversion module 530 e, and/or any othercircuitry, module, etc. In certain embodiments and from certainperspectives, the signal sequence output from the AFE 520 is a basebandsignal (e.g., a digital signal typically provided at a frequencycorresponding to a clock frequency of the communication device 500 or aninteger or sub-multiple of the clock frequency).

This signal sequence is then passed to a bit error identificationcircuitry 540 that is operative to identify, by processing bits and/orsymbols of a signal sequence, error locations therein. There are avariety of means by which such bit error identification may be performedincluding employing at least two signal sequences and performing XORprocessing of them to identify the bit locations in which such twosignal sequences differ (e.g., where the bits in the same, respectivelocation in two signal sequences are the same, the XOR result will be 0;alternatively, where the bits in the same, respective location in twosignal sequences are different, the XOR result will be 1), as shown in ablock 540 a. Alternatively, such bit error identification may beperformed using soft information, metrics, etc. as may be calculated onrespective symbols and/or bits of a signal sequence, as shown in a block540 b. In this alternative embodiment, a singular signal sequence mayundergo processing (e.g., using soft information, metrics, etc.) toidentify the most likely (or potential) error locations therein, and aredundant signal sequence is not needed.

In addition, the received signal sequence may undergo CRC processing,such as using block 570, to determine if the CRC passes (e.g., if theCRC check provides a non-zero). Based on such a CRC triggering event, asubsequent transmission (e.g., a redundant transmission) may berequested from a transmitting communication device. The results of thisCRC check may also be provided to a processing circuitry 560.

Once information is determined in regards to the most likely (orpotential) error locations within the received signal sequence, usingany desired manner or combination thereof, this information is passed toa permutation selection circuitry 550 that is operative to determine atleast one permutation syndrome (e.g., a singular syndrome, a linearcombination of syndromes, etc.) that corresponds to the calculated CRCremainder of the signal sequence (e.g., CRC remainder being non-zero).Syndromes associated with single bit-errors for each of the respectivebit locations within a signal sequence may be calculated ‘a priori’ oroff-line (e.g., generally speaking, not in real time but some timebeforehand). Then, these predetermined values may be employed in realtime to calculate any appropriate, possible combinations that maysatisfy the constraints of the results of this CRC check. There may besituations in which more than one permutation syndrome satisfies theresults of this CRC check.

Once one or more candidate permutation syndromes are determined, theprocessing circuitry 560 is operative to generate a corrected signalsequence using the received signal sequence, a redundant signalsequence, and/or a combination thereof. The corrected signal sequencemay be provided to a decoder circuitry 505 that may perform ECC decodingthereon in accordance with the appropriate ECC used at the transmitterend of the communication channel (e.g., in a transmitting communicationdevice). That is to say, this corrected signal sequence is then providedto a decoder circuitry 505 that is operative to make best estimates ofinformation bits encoded therein.

In alternative embodiments in which the signal sequence does notcorrespond to any ECC encoding (e.g., uncoded modulation), the outputfrom the processing circuitry 560 includes the best estimates of theinformation bits. Such an embodiment may be viewed as bypassing thedecoder circuitry 505. With respect to the decoder circuitry 505, anydesired type of ECC (or any combination thereof) may be employed by thedecoder circuitry 505, including a convolutional code 505 a, aReed-Solomon (RS) code 505 b, a turbo code 505 c, a trellis codedmodulation (TCM) code 505 d, a turbo trellis coded modulation (TTCM)code 505 e, a low density parity check (LDPC) code 505 f, or a BCH (Boseand Ray-Chaudhuri, and Hocquenghem) code 505 g, and/or any other type ofECC as generally shown by block 505 z.

In accordance with performing error correction based on CRC, oneapproach involves performing bit flipping of the corresponding bits ofthe received signal sequence that are in the identified bit-errorlocations. For example, considering an embodiment in which there is asingle bit-error in the received signal sequence or data stream,D_(R)(x), then at the receiving communication device, the remainder ascalculated in accordance with CRC will be non-zero. The receivingcommunication device could successively flip one-bit at a time andcorrespondingly re-compute the remainder for each of the possiblemodified signal sequences. For a given, potential corrected signalsequence, if the current bit position does not contain the original oractual bit-error, then the new stream (i.e., the potential correctedsignal sequence) will then contain two errors (as opposed to a singlebit-error). As long as the Hamming distance (HD) is greater than 2(i.e., HD>2), then the remainder will be non-zero. However, if thecurrent bit position does contain the actual error, then the receivedsignal sequence of stream will equal the original stream and theremainder will be zero. In such an instance, the bit-error location isthen known and the bit-error can be corrected.

Generally speaking, the received signal sequence may be viewed ascontaining P errors. However, the receiving communication device onlyknows that the remainder is non-zero which indicates only that there isat least one bit-error. No indication is given for the number ofbit-errors present. The above described brute-force bit-flippingapproach will correct the bit-errors if the following is true:2·P<HD.  (11)

To understand this relationship, consider that to correct P bit-errors,P bits must be flipped. Since the location of the errors is not known,it is possible to flip P correct bits, thus creating a stream with 2·Perrors. If 2·P is equal or greater than HD, then the power of the CRC isexceeded, and the error stream with 2·P errors may generate a zeroremainder. In practice, P is not known at the receiving communicationdevice, and hence, any bit flipping may result in erroneously passingthe CRC if P≧HD−1.

It is noted that is a practical limitation to the above-described bitflipping approach. The number of times the CRC must be computed growsexponentially with the number of bit-errors present (and hence thenumber of bit-flips that must occur exhaustively to cover all of thepossibilities). For example, consider P errors in a K-bit stream. Thereare

$\begin{matrix}{\begin{pmatrix}K \\P\end{pmatrix} = \frac{K!}{{P!}{\left( {K - P} \right)!}}} & (12)\end{matrix}$

combinations to consider. Considering a concrete example, if K=100 bits,and P=3, there are 161,700 bit-error permutations. Note that for evensuch a relatively small block size, a significantly large number ofcalculations must necessarily be made. Such a large number of CRCrelated calculations may not be desirable in certain applications (e.g.,in terms of processing time constraints, desired latency, etc.).

However, because of the properties of the math used in computing CRCs,the full CRC computation need not be recomputed each time based on eachpossible signal sequence. This can be seen from the fact (as describedabove) that any error R_(R)(x) may be viewed as being a linearcombination of the possible single bit-error syndromes. Therefore, thecalculation of the individual we only need to determine the C_(k)'s suchthatR _(R)(X)=C ₁ ·S ₁ +C ₂ ·S ₂ + . . . +C _(K) ·S _(K)  (13)

All

$\left( \frac{K}{P} \right)$permutations need to be considered, but instead of re-computing the CRC,only n-bit sums need to be computed (n is the order of the CRC). Allpossible single-bit syndromes are pre-computed (e.g., calculatedoff-line) according to:

$\begin{matrix}{{S_{k}(x)} = {{\frac{C_{k} \cdot x^{k}}{G(x)}\mspace{14mu} k} = {1\mspace{14mu}\ldots\mspace{14mu} K}}} & (14)\end{matrix}$

and stored in a memory (e.g., a table, look up table (LUT)), etc.) andretrieved to solve for R_(R)(x). These values may then be viewed asbeing predetermined values against which calculated possible values of areceived signal sequence are compared.

FIG. 6 illustrates an embodiment of a operations and functionalitywithin a cyclic redundancy check (CRC) error correction (EC) decoder.One embodiment shows the use of two separate signal sequences, thesecond signal sequence being a retransmission of the first signalsequence, that undergo XOR processing to identify the locations in whichthe two signal sequences are different. When undergoing XOR processing,where the bits in the same, respective location in two signal sequencesare the same, the XOR result will be 0. Alternatively, where the bits inthe same, respective location in two signal sequences are different,then the XOR result will be 1. The results of ‘1’ provide indication asto where possible error locations may be in the received signalsequences.

While one embodiment employs XOR processing, it is noted that othermeans to perform error identification may be performed including usingsoft information, metrics, etc. as may be calculated in accordance withAFE processing, demodulation, metric generation, Viterbi detectionand/or decoding, etc. Such information can provide indicia as related tothe confidence level associated with a given symbol and/or bit decision,and a relatively lower confidence level may be used to provideindication as to the location of an error in a signal sequence. Whenusing such means (soft information, etc.), a redundant signal sequencemay not be needed to identify possible error locations therein.Therefore, soft information, or some other means, may be used to provideindication as to possible error locations within a signal sequence. Asmentioned elsewhere herein, as the reader may understand, such softinformation may be employed within embodiments employing redundant bitstreams for providing even improved confidence in the location(s) ofmost likely (or potential) bit error locations.

Regardless of the manner by which possible error locations within asignal sequence are identified, these possible error locations areprovided for selection of at least one permutation syndrome thatcorresponds to a CRC check remainder of the signal sequence. If a singlepossible error location solution is found, then the bits associated withthe error locations may be flipped to generate a corrected signalsequence. Alternatively, if more than one possible error locationsolution is found, then either a CRC failure may be deemed, or one ofthe multiple solutions may be selected as being the ‘correct’ solution,and such appropriate bits may be flipped therein.

FIG. 7 illustrates an embodiment 700 of one or more possible errorslocated within redundant signal sequences. As described in several ofthe embodiments herein, aspects of the error correction approachpresented herein operate in accordance with redundant signal sequences(e.g., at least one additional signal sequence that is a redundanttransmission, or a retransmission, of another signal sequence).

The response by many receiving communication devices to a failed CRC isto request a retransmission of the same data (e.g., to request at leastone additional redundant transmission of the previously received signalsequence). Each time that the CRC fails, the receiving communicationdevice may request a retransmission from a sending communication deviceup to some configurable or predefined limit (e.g., L retransmissions).Hence, if upon the final retransmission, the CRC still fails, thereceiving communication device then has L copies of the same datatransmitted stream/signal sequence, each of which may have at least oneerror. The set of copies of the current data frame may be denoted asfollows:{D _(R) ¹(x)} l=1 . . . L  (15)

In accordance with the various embodiments of the operations of amapping circuitry presented herein (and/or within an XOR mappingcircuitry), the potential bit-error locations can be obtained bycomputing the bit-level exclusive-OR (XOR) operation (for L=2) (denotedwith “^”) on {D_(R) ¹(x)} as follows:XORMAP_(R)({D _(R) ¹(x)})=D _(R) ¹ ^D _(R) ² (for L=2)  (16)

If the total number of non-zero locations in XORMAP_(R)( ) is equal toK_(XOR), then instead of needing to consider

$\left( \frac{K}{P} \right)$permutations, then only 2^(K) ^(XOR) permutations are needed. Hence,only the bit-error locations determined by the non-zero locations ofXORMAP_(R)( ) are used.

In this embodiment, XORMAP_(R)( ) indicates the location of bit-errorsamong the L streams, but it does not give a definitive indication of thelocation of bit-errors within each respective stream. For example, ifL=2 (D_(R) ¹, D_(R) ²) and XORMAP_(R)( ) is non-zero at bit locations{L1, L2, L3}, then one stream contains one error and the second streamcontains two errors. It is not known which bit-error locations occur ineach stream.

To correct the bits, one of the streams is selected (e.g., either onemay be selected). In the derivation shown below, the first stream isselected. The remainder R_(R) ¹(x) for the first stream is computed. Let{L₁, L₂, . . . , L_(K) _(XOR) } be the non-zero locations of XORMAP_(R)(). The following is then computed:R_(C) ^(k)(x)=C _(L) ₁ ·S _(L) ₁ +C _(L) ₂  S _(L) ₂ + . . . +C _(L)_(KXOR) ·S _(L) _(KXOR)   (17)

for all k, where

$\begin{matrix}{{{k = 1},{C_{L_{1}} = 1},{C_{L_{2}} = 0},\ldots\mspace{14mu},{C_{L_{KXOR}} = 0}}{{k = 2},{C_{L_{1}} = 0},{C_{L_{2}} = 1},{C_{L_{3}} = 0},\ldots\mspace{14mu},{C_{L_{KXOR}} = 0}}{{k = 3},{C_{L_{1}} = 1},{C_{L_{2}} = 1},{C_{L_{3}} = 0},\ldots\mspace{14mu},{C_{L_{KXOR}} = 0}}\ldots{{k = 2^{L_{KXOR}}},{C_{L_{1}} = 1},{C_{L_{2}} = 1},\ldots\mspace{14mu},{C_{L_{KXOR}} = 1.}}} & (18)\end{matrix}$

As long as XORMAP_(R)( ) contains the locations of all of thebit-errors, then since all permutations are considered, it is guaranteedthat R_(C) ^(k)(x)=R_(R)(x) for at least one k. If there is only one kthat satisfies the equality, then it corresponds to the solution and theappropriate bits have been flipped. If there are multiple solutions,then one of the solutions is the correct one, and the remainingsolutions are false positives corresponding to erroneous solutions whenthe HD of the CRC has been exceeded. In this case, the system candeclare CRC failure, or one of the solutions may be chosen as thecorrect one. This selection may be based on which solution is mostlikely according to some decision-making criterion or criteria. Forexample, the channel error rate of the communication channel from whichthe signal sequence has been received may be estimated, and the solutionthat contains the most likely number of non-zero positions may then beselected.

It is noted that various aspects of the error correction techniquepresented herein are not limited to finding unique solutions that do notviolate the HD. When the HD is exceeded, the CRC is not guaranteed to beunique. However, the majority of the bit combinations do produce aunique solution. For these cases, the error detection and concealmentapproach presented herein identified the unique solution and results inthe corrected signal sequence. In addition, even if the CRC is notunique, the permutations considered by the non-zero bit locations ofXORMAP_(R)( ) may not include any erroneous solutions. Again, in thesecases, the error detection and concealment approach presented hereinsolves the problem.

While the embodiment described above shows the use of a single redundantstream (e.g., in addition to a first stream), it is noted that the errorconcealment approach presented herein may be extended to more than oneredundant stream (e.g., multiple redundant streams in addition to afirst stream) without departing from the scope and spirit of theinvention.

Referring again to FIG. 7, the data is shown including n bits (e.g., b1,b2, and so on up to bn), and the CRC is shown as including m bits (e.g.,c1, c2, and so on up to cm). This embodiment 700 shows a transmission,RX1, with a redundant transmission, RX2. In actuality, the bit inlocation b2 of RX1 is in error, and the bit in location b4 of RX2 is inerror.

In accordance with the bit error identification operations (e.g., XORmapping) performed on the first and second received streams, RX1 andRX2, bit errors are identified as being located in bit locations b2 andb4 in the two streams. The bit error identification operations (e.g.,XOR mapping) is performed to compare the actual bit streams RX1 and RX2to see where the location of the errors may be, and the locationscorrespond to bit locations b2 and b4. However, it is not known which ofthe errors is in fact located in which of the streams (e.g., whethererror with respect to b2 is in RX1 or RX2, or whether error with respectto b4 is in RX1 or RX2).

Of all of the syndromes calculated for each of the respective bitlocations of the two received signal streams (which may bepre-calculated or calculated off-line), the bit error identificationoperations (e.g., XOR mapping) is operative to identify those possibleerror locations so that only a subset of all possible syndromepermutations corresponding particularly to the errors located within bitlocations b2 and b4 in RX1 and RX2 need be considered. To effectuateerror correction, one or more permutation syndromes corresponding toerrors being located in bit locations b2 and b4 in RX1 and RX2 may thenbe calculated in real time using pre-computed syndromes associated withsingle bit errors. As mentioned above with respect to embodimentsincluding a first transmission and one additional transmission (e.g., asingular redundant transmission), one of the streams is selected. If thefirst stream is selected firstly (e.g., consider RX1), it is consideredwhether the error is located in each of the bit locations b2 and b4.

When comparing the calculated at least one permutation syndrome of RX1to the calculated CRC check (e.g., CRC remainder), there will be a matchbetween the calculated permutation syndrome of RX1 and the CRC checkreminder corresponding to an error in bit position b2. This willindicate that the error within the RX1 stream is in fact located in bitlocation b2. Because the bit error location of RX1 is properlyidentified as being in bit locations b2, then it may be deduced that thebit error location of RX2 is identified as being in bit locations b4.

However, in an alternative embodiment, when processing RX2 initially,when comparing the calculated permutation syndrome to the CRC checkreminder, the match will correspond to the calculated permutationsyndrome of RX2 and the CRC check reminder corresponding to an error inbit position b4. As such, the error in RX2 may be properly identified inbit locations b4.

In one case, if RX1 is initially selected, the properly identified biterror is located in position b2, and that bit may be flipped to generatea corrected signal sequence. Alternatively, if RX2 is initiallyselected, the properly identified bit error is located in position b4,and that bit may be flipped to generate the corrected signal sequence.

When a single solution is arrived upon (e.g., a single permutationsyndrome), this is a unique and correct solution and a corrected signalsequence may be generated. When more than one solution is arrived upon(e.g., two or more permutation syndromes), one of them may be selectedas being the ‘solution’ using any desired decision means or constraint.Alternatively, when more than one solution is arrived upon (e.g., two ormore permutation syndromes), a decoding failure may be declared.

FIG. 8 illustrates an alternative embodiment 800 of one or more possibleerrors located within redundant signal sequences. This embodiment 800also shows a transmission, RX1, with another redundant transmission,RX2. However, in this embodiment 700, the bit in location b2 of RX1 isin error, and both the bits in locations b1 and b4 of RX2 are in error.

In accordance with the bit error identification processing (e.g., usingXOR processing), possible bit error locations may be calculated for atleast one of the respective signal sequences. Bit error identificationprocessing (e.g., using XOR processing) is performed to compare theactual bit streams RX1 and RX2 to see where the location of the errorsmay be. If the bit values are the same in accordance with the XORmapping, then the resultant is 0 (e.g., both bits are the same in thatrespective bit location), or the resultant is 1 (e.g., both bits are thedifferent in that respective bit location).

Thereafter, at least one permutation syndrome is identified thatcorresponds to the CRC check remainder based on the possible bit errorlocations. For example, one of the streams is selected. If the firststream is selected (e.g., consider RX1), it is considered whether theerror or errors are located in each of the bit locations b1, b2, and/orb4. Unlike the previous embodiment 700 of FIG. 7 (that included only oneerror in each respective stream RX1 and RX2), because there are threeerror locations in the embodiment 800 of FIG. 8 (e.g., one error in RX1,and two errors in RX2), there are in fact six possible error scenariosthat must be considered. Specifically, three of these possible valuescorrespond to the instance where a stream includes one bit error in eachof bit locations b1, b2, or b4, respectively. Also, three of thesepossible values correspond to the instance where a stream includes twobit errors in each of bit locations “b1 and b2”, “b2 and b4”, or “b2 andb4”.

The combined values corresponding to each of the instances of a streamincluding two bit errors may be generated by a linear combination ofindividual bit errors in each of the two respective locations (e.g., biterrors in the two bit locations “b1 and b2” being a linear combinationof a bit error in location b1 plus a bit error in location b2, biterrors in the two bit locations “b1 and b4” being a linear combinationof a bit error in location b1 plus a bit error in location b4, etc.).

When one of the two streams is initially selected, RX2, and then if thedetermined permutation syndrome of that stream matches the calculatedCRC check remainder that corresponds to errors being located bitpositions “b1 and b4”, then a unique and correct solution has beenfound. Again, when a single solution is arrived upon (e.g., a singlepermutation syndrome), this is a unique and correct solution and acorrected signal sequence may be generated. When more than one solutionis arrived upon (e.g., two or more permutation syndromes), one of themmay be selected as being the ‘solution’ using any desired decision meansor constraint. Alternatively, when more than one solution is arrivedupon (e.g., two or more permutation syndromes), a decoding failure maybe declared.

FIG. 9 illustrates an embodiment 900 of possible values that may becalculated to correct for errors located within redundant signalsequences. Certain of the previous embodiments relate to situations inwhich either one or two bit errors may be located in each stream.However, there may be instances where more than two bit errors may occurin each stream. A stream showing 5 bits is depicted in this diagram(e.g., b1, b2, b3, b4, b5). Of course, a stream including more or lessthan 5 bits may alternatively be employed without departing from thescope and spirit of the invention. This diagram shows the large numberof linear combinations of predetermined values that may be needed in agiven embodiment (e.g., for use in comparing with the calculated CRCremainder based on the most likely (or potential) error locations withinthe received signal(s), such as may be determined using XOR processing,soft information, etc.).

Considering the situation for which a singular bit error occurs in agiven stream, then predetermined syndromes for each of the respectivebit locations within the signal sequence, namely, S(b1), S(b2), and soon may be calculated (e.g., off-line). Considering the situation forwhich two bit errors occur in a given stream, then certain linearcombinations of these predetermined syndromes for each of thecombination of two bits, such as S(b1)+S(b2), S(b1)+S(b3), S(b1)+S(b4),and so on, can be calculated. Considering the situation for which threebit errors occur in a given stream, then certain linear combinations ofthese predetermined syndromes for each of the combination of three bits,such as S(b1)+S(b2)+S(b3), S(b1)+S(b2)+S(b4), S(b2)+S(b3)+S(b4), and soon, can be calculated.

As may be seen, a very large number of permutation syndromes values mayneed to be calculated in real time using the single bit-error syndromescalculated. While one embodiment envisions that the linear combinationsof predetermined syndromes be calculated in real time (e.g., once themost likely (or potential) error locations within the received signal(s)are determined), other embodiments envision that the linear combinationsof predetermined syndromes be calculated off-line. That is to say, whilesuch single bit-error syndrome calculations may be performed entirelyoff-line, any linear combinations thereof typically may be calculated inreal time.

As mentioned above, if a singular and unique solution is arrived upon,then the stream may be corrected and the corrected signal sequence maybe output. It is again noted that this situation may occur even if theHD of the CRC is exceeded. As is described further below with respect tocertain performance diagrams, this may result in very high performancewith exceptional error correction capability.

However, there may be instances where a singular and unique solution isnot arrived upon. For example, there may be instances where no matchesare found. In such instances, the bit errors in multiple streams may bein the very same locations of the multiple streams, and the HD of theCRC may not be exceeded. Alternatively, this may be associated with asituation in which the correct bit error locations are not in the searchgrid (e.g., region across which errors are searched for). Of course,when the HD of the CRC is exceeded, erroneous solutions may be arrivedupon.

In other instances, more than two matches may be found when making thecomparison between the possible values and the predetermined values(e.g., that may have been calculated before hand). The error correctionapproach may then either declare that the decoding had failed, oralternatively, select one of the solutions as being the correct solutionbased on some criterion or criteria.

There may be another situation in which the CRC itself has failed. This‘true’ failure may occur when the CRC simply failed to locate the biterror locations properly. Also, this ‘true’ failure may occur if biterrors are respectively located in the very same locations in two ormore of the streams (a situation that should occur quite seldom).

FIG. 10A illustrates an embodiment of an apparatus 1001 that isoperative to perform error correction using cyclic redundancy check(CRC) and redundant bit streams. The apparatus 1001 includes aprocessing circuitry 1020 a, and a memory 1010 a. The memory 1010 a iscoupled to the processing circuitry 1020 a, and the memory 1010 a isoperable to store operational instructions that enable the processingcircuitry 1020 a to perform a variety of functions. The processingcircuitry 1020 a is operable to perform error correction using CRC andredundant bit streams.

The processing circuitry 1020 a can be implemented using a sharedprocessing device, individual processing devices, or a plurality ofprocessing devices, among other types of circuitry or circuitries. Sucha processing device may be a microprocessor, micro-controller, digitalsignal processor, microcomputer, central processing unit, fieldprogrammable gate array, programmable logic device, state machine, logiccircuitry, analog circuitry, digital circuitry, and/or any device thatmanipulates signals (analog and/or digital) based on operationalinstructions. The memory 1010 a may be a single memory device or aplurality of memory devices. Such a memory device may be a read-onlymemory, random access memory, volatile memory, non-volatile memory,static memory, dynamic memory, flash memory, and/or any device thatstores digital information. Note that when the processing circuitry 1020a implements one or more of its functions via a state machine, analogcircuitry, digital circuitry, and/or logic circuitry, the memory storingthe corresponding operational instructions is embedded with thecircuitry comprising the state machine, analog circuitry, digitalcircuitry, and/or logic circuitry.

If desired, the apparatus 1020 a can be designed to generate and performmultiple means of performing error correction using CRC and redundantbit streams in accordance with multiple needs and/or desires as well. Insome embodiments, the processing circuitry 1020 a can selectivelyprovide different information (e.g., corresponding to different errorcorrection using CRC and redundant bit streams, etc.) to differentcommunication devices and/or communication systems. That way, differentcommunication links between different communication devices can employdifferent error correction using CRC and redundant bit streams. Clearly,the processing circuitry 1020 a can also provide the same information toeach of different communication devices and/or communication systems aswell without departing from the scope and spirit of the invention.

If desired, the communication device 1030 a may be implemented in acommunication system 1040 a, and the processing circuitry 1020 a andmemory 1010 a may be located remotely with respect to the communicationdevice 1030 a.

FIG. 10B illustrates an embodiment of an apparatus 1002 that isoperative to perform error correction using CRC and redundant bitstreams. The apparatus 1002 includes a processing circuitry 1020 b, anda memory 1010 b. The memory 1010 b is coupled to the processingcircuitry 1020 b, and the memory 1010 b is operable to store operationalinstructions that enable the processing circuitry 1020 b to perform avariety of functions. The processing circuitry 1020 b (serviced by thememory 1010) can be implemented as an apparatus capable to perform anyof the functionality of any of the various modules, circuitries, and/orfunctional blocks described herein. For example, the processingcircuitry 1020 b (serviced by the memory 1010) can be implemented as anapparatus capable to perform and/or direct the manner in of performingerror correction using CRC and redundant bit streams in accordance withany embodiment described herein, or any equivalent thereof.

The processing circuitry 1020 b can be implemented using a sharedprocessing device, individual processing devices, or a plurality ofprocessing devices, among other types of circuitry or circuitries. Sucha processing device may be a microprocessor, micro-controller, digitalsignal processor, microcomputer, central processing unit, fieldprogrammable gate array, programmable logic device, state machine, logiccircuitry, analog circuitry, digital circuitry, and/or any device thatmanipulates signals (analog and/or digital) based on operationalinstructions. The memory 1010 b may be a single memory device or aplurality of memory devices. Such a memory device may be a read-onlymemory, random access memory, volatile memory, non-volatile memory,static memory, dynamic memory, flash memory, and/or any device thatstores digital information. Note that when the processing circuitry 1020b implements one or more of its functions via a state machine, analogcircuitry, digital circuitry, and/or logic circuitry, the memory storingthe corresponding operational instructions is embedded with thecircuitry comprising the state machine, analog circuitry, digitalcircuitry, and/or logic circuitry.

If desired in some embodiments, the apparatus 1002 can be any of avariety of communication devices 1030 b, or any part or portion of anysuch communication device 1030 b. Any such communication device thatincludes the processing circuitry 1020 b and/or memory 1010 b can beimplemented within any of a variety of communication systems 1040 b aswell. If desired, the communication device 1030 b may be implemented ina communication system 1040 b, and the processing circuitry 1020 b andmemory 1010 b may be located within the communication device 1030 b.

It is also noted that various embodiments of performing error correctionusing CRC and redundant bit streams in accordance with any embodimentpresented herein, and equivalents thereof, may be applied to many typesof communication systems and/or communication devices.

Many of diagrams described below correspond to method that may beperformed by or within a communication device that may be implementedand operative within any of a variety of communication systems.

FIG. 11 illustrates an embodiment of a method 1100 for performing errorcorrection using CRC and redundant bit streams.

Referring to method 1100 of FIG. 11, the method 1100 begins byreceiving, from a communication channel, a first signal sequence and asecond signal sequence that corresponds to a retransmission of the firstsignal sequence (e.g., the second signal sequence being a copy of thefirst signal sequence, yet being a transmitted copy thereof), as shownin a block 1110.

The method 1100 continues by determining one or more bit error locationswithin the first signal sequence and the second signal sequence inaccordance with mapping operations (e.g., XOR) of the first signalsequence and the second signal sequence, as shown in a block 1120. Themethod 1100 then operates by selecting one or more permutation syndromesbased on mapping operations (e.g., XOR), as shown in a block 1130. Insome instances, only single-bit error syndromes are needed (e.g., whenonly a singular most likely or potential bit error location isdetermined). However, in some instances, two or more most likely (orpotential) bit error locations may be determined, and linearcombinations (summations) of multiple single-bit error syndromes arecombined together (in real time) for use in comparison against a CRCremainder of the received first (or second) signal sequence. Thosepermutation syndromes that match the CRC remainder are identified asbeing possible solutions. One, two or more, or no solutions may beidentified in a given situation.

The method 1100 continues by determining if a single solution is arrivedupon, as shown in a decision block 1140 (e.g., a single permutationsyndrome), this is a unique and correct solution and a corrected signalsequence may be generated. Such generation of a corrected signalsequence may be made by flipping bits, as shown in a block 1150.Alternatively, when more than one solution is arrived upon (e.g., two ormore permutation syndromes), a CRC failure may be deemed, as shown in ablock 1160, or one of the permutation syndromes may be selected as beingthe ‘solution’ using any desired decision means or constraint.

The diagrams corresponding to FIG. 12A and FIG. 12B may be viewed asoperating in conjunction with identifying one or more matches whencomparing possible values as calculated based on received signalssequences (e.g., a first signal sequence and at least one redundantsignal sequence) and predetermined values (e.g., that may be calculatedoff-line and stored in some desired memory).

FIG. 12A illustrates an embodiment of a method 1200 for selecting andidentifying at least one bit-error corresponding to at least onebit-error location.

Referring to method 1200 of FIG. 12A, the method 1200 begins byidentifying one match when comparing the CRC remainder of receivedsignal sequence to at least one permutation syndrome, as shown in ablock 1210. The method 1200 continues by correcting one or more bitsassociated with one match, as shown in a block 1220. The method 1200then operates by outputting the corrected signal sequence (e.g., withthe corrected one or more bits), as shown in a block 1230.

FIG. 12B illustrates an embodiment of an alternative method 1201 forselecting and identifying at least one bit-error corresponding to atleast one bit-error location.

Referring to method 1201 of FIG. 12B, the method 1201 begins byidentifying two (or more) matches when comparing the CRC remainder ofreceived signal sequence to two (or more) permutation syndromes, asshown in a block 1211. The method 1201 then operates by selecting one ofthe matches as being a correct match, as shown in a block 1221.

The method 1201 continues by correcting one or more bits associated withthe selected match, as shown in a block 1231. The method 1201 thenoperates by outputting the corrected signal sequence (e.g., with thecorrected one or more bits), as shown in a block 1241.

FIG. 13A illustrates an embodiment of a method 1300 for identifyingfailure of error correction using CRC and redundant bit streams.Referring to method 1300 of FIG. 13A, the method 1300 begins by failingto identify at least one match when comparing the plurality of possiblevalues to the predetermined plurality of values, as shown in a block1310. The method 1300 continues by indicating a failure in identifyingand correcting one or more bit errors, as shown in a block 1320.

FIG. 13B illustrates an embodiment of a method 1301 for performingadditional ECC decoding in accordance with error correction using CRCand redundant bit streams. Referring to method 1301 of FIG. 13B, themethod 1301 begins by receiving corrected signal sequence (e.g., withcorrected one or more bits), as shown in a block 1311. The method 1301then operates by performing additional ECC decoding on the correctedsignal sequence, as shown in a block 1321. The method 1301 continues bygenerating best estimates of one or more information bits encoded withinthe corrected signal sequence, as shown in a block 1331.

FIG. 14 illustrates an embodiment of a performance diagram 1400corresponding to error correction using CRC and redundant bit streams.The error correction approach presented herein has been implementedwithin a Bluetooth simulation of an extended synchronous connectionoriented (eSCO) channel with 480 bits per packet. In the implementation,the communication channel is protected by the 16-bit CRC “CCITT-16” witha Hamming Distance of 4, and the maximum number of retransmissionsallowed is 2, hence the various results consider up to 2retransmissions. The performance for 1 retransmission is shown in FIG.14 (i.e., a first transmission and a second transmission that isredundant with respect to the first transmission).

The number of frames that pass CRC based solely on retransmission showsa steep drop-off as the random bit-error rate increases, and it is lessthan 1% when the bit-error rate reaches 0.8%. The number of frames fixedby the novel error correction approach presented herein (CRC-EC)increases to compensate for this drop-off such that the sum of the fixedframes and correctly received frames (hence the total number ofcorrectly received frames) is greater than 99% until the randombit-error rate exceeds 1%. The total pass rate decreases once the randombit-error rate exceeds 1% due to the increasing probability that theHamming Distance of the CRC is exceeded and multiple CRC solutionsresult.

FIG. 15 illustrates an embodiment of a diagram 1500 corresponding to CRCfalse pass rate for different retransmission schemes. When a bit-errorunfortunately hits both streams (both the first stream and a redundantstream) in the same bit position, the resulting mapping (XOR mapping)will consequently not indicate a bit-error in that particular position.As a result, the novel error correction approach presented herein(CRC-EC) then does not consider that particular bit position in thepermutations and cannot correctly solve the CRC. In such a situation,there are then three outcomes: (1) no solutions are found; (2) a singlesolution is found; (3) multiple solutions are found. In the case of (1)and (3), the error correction approach presented herein (CRC-EC) willfail the CRC. However, in the case of (2) the algorithm will nonethelessdeclare that the solution has been found. As a result, the wrong bitswill be flipped to give an incorrect solution to the CRC. Of course, thechance that a bit-error hits both streams in the same exact location isvery small but does increase as the bit-error rate increases. Still, theCRC will be incorrectly passed only in the unlikely event that a unique,yet incorrect solution is arrived upon. This “False Pass %” is shown inFIG. 15 as a function of the random bit-error rate. The false pass rateremains negligible up to approximately 1% after which it ramps up.However, for most applications, the trade-off between CRC Pass Rate andCRC False Pass Rate is almost certainly worth it. For example, at 1%RBE, the CRC Pass Rate increases from 3% to 95% while the False PassRate increases from near 0% to 0.19%.

FIG. 16 illustrates an embodiment of a diagram 1600 corresponding to CRCpass rate as a function of the XOR map maximum complexity. As discussedabove, the number of permutations in the summation of Equation (17)increases exponentially with the number of bit-errors indicated by anXOR mapping. Even though only a table lookup (retrieval from a memory)and XOR summation is required instead of performing a full CRCcomputation, the sheer number of permutations may become prohibitive forcertain applications. One approach to limit the complexity of this largenumber of permutations is to limit the number of bit-errors consideredin the XOR mapping. If this number is exceeded, the CRC is simplyfailed. FIG. 16 shows the CRC Pass Rate as this maximum (XORMAX)threshold is varied. As expected, the performance degrades as XORMAX isreduced and the RBE % exceeds a certain bound. Still, significantperformance improvement is obtained over the singular retransmission(1-retrans) case for relatively small XORMAX. An alternative approachwould be to limit the total number of permutations considered instead ofplacing a hard limit on the XOR Map non-zero locations (results still tobe obtained).

It is noted that, the number of sums to be performed in accordance withpermutation syndrome calculations will increase exponentially as afunction of the number of bit errors within a signal sequence (e.g.,where the number of sums=2^(N), where N is the number of bit errorswithin the signal sequence.

FIG. 17 illustrates an embodiment of a diagram 1700 corresponding tospeech quality for different retransmission and error concealmentschemes. Finally, the performance is evaluated in terms of speechquality across a Bluetooth eSCO link using the wideband audio codersub-band codec (SBC) with 7.5 ms frames (480 bits) and up to 2retransmissions. The performance is evaluated using wideband perceptualevaluation of speech quality (PESQ) wideband PESQ (WPESQ). Differenterror concealment schemes are also compared. The results are shown inFIG. 17. First, a description of the various error concealment schemesis provided as follows: (1) PLC-x decodes the frame with SBC if the CRCpasses and uses Packet Loss Concealment (PLC) if the CRC fails, where‘x’ indicates the number of retransmissions attempted in the case of CRCfailure at the receiver; (2) SBC-x decodes with SBC regardless of theresult of the CRC, where ‘x’ again indicates the number of attemptedretransmissions; (3) BEC-x utilizes Bit-Error Concealment (BEC) schemesbased on the number of streams present and the ‘a-priori’ knowledge ofthe location of the sensitive bits in SBC; (4) CRC-EC-1 is the novelerror correction approach presented herein in combination with BEC-1 inthe case that the CRC fails. This implementation uses at most 1retransmission (i.e., a singular retransmission (1-retrans) inconjunction with the original transmission, so that two copies of thesame data transmitted stream/signal sequence are available for use). Ascan be seen from FIG. 17, the CRC-EC-1 system provides for a significantspeech quality improvement when compared to the other approaches. Forexample, at 0.5% RBE, the performance of BEC-1 is improved from a PESQof 1.818 to a score of 4.209.

It is noted that the various modules and/or circuitries (e.g., encodingmodules and/or circuitries, decoding modules and/or circuitries,processing modulations and/or circuitries, etc.) described herein may bea single processing device or a plurality of processing devices. Such aprocessing device may be a microprocessor, micro-controller, digitalsignal processor, microcomputer, central processing unit, fieldprogrammable gate array, programmable logic device, state machine, logiccircuitry, analog circuitry, digital circuitry, and/or any device thatmanipulates signals (analog and/or digital) based on operationalinstructions. The operational instructions may be stored in a memory.The memory may be a single memory device or a plurality of memorydevices. Such a memory device may be a read-only memory (ROM), randomaccess memory (RAM), volatile memory, non-volatile memory, staticmemory, dynamic memory, flash memory, and/or any device that storesdigital information. It is also noted that when the processing moduleimplements one or more of its functions via a state machine, analogcircuitry, digital circuitry, and/or logic circuitry, the memory storingthe corresponding operational instructions is embedded with thecircuitry comprising the state machine, analog circuitry, digitalcircuitry, and/or logic circuitry. In such an embodiment, a memorystores, and a processing module coupled thereto executes, operationalinstructions corresponding to at least some of the steps and/orfunctions illustrated and/or described herein.

It is also noted that any of the connections or couplings between thevarious modules, circuits, functional blocks, components, devices, etc.within any of the various diagrams or as described herein may bedifferently implemented in different embodiments. For example, in oneembodiment, such connections or couplings may be direct connections ordirect couplings there between. In another embodiment, such connectionsor couplings may be indirect connections or indirect couplings therebetween (e.g., with one or more intervening components there between).Of course, certain other embodiments may have some combinations of suchconnections or couplings therein such that some of the connections orcouplings are direct, while others are indirect. Differentimplementations may be employed for effectuating communicative couplingbetween modules, circuits, functional blocks, components, devices, etc.without departing from the scope and spirit of the invention.

Various aspects of the present invention have also been described abovewith the aid of method steps illustrating the performance of specifiedfunctions and relationships thereof. The boundaries and sequence ofthese functional building blocks and method steps have been arbitrarilydefined herein for convenience of description. Alternate boundaries andsequences can be defined so long as the specified functions andrelationships are appropriately performed. Any such alternate boundariesor sequences are thus within the scope and spirit of the claimedinvention.

Various aspects of the present invention have been described above withthe aid of functional building blocks illustrating the performance ofcertain significant functions. The boundaries of these functionalbuilding blocks have been arbitrarily defined for convenience ofdescription. Alternate boundaries could be defined as long as thecertain significant functions are appropriately performed. Similarly,flow diagram blocks may also have been arbitrarily defined herein toillustrate certain significant functionality. To the extent used, theflow diagram block boundaries and sequence could have been definedotherwise and still perform the certain significant functionality. Suchalternate definitions of both functional building blocks and flowdiagram blocks and sequences are thus within the scope and spirit of theclaimed invention.

One of average skill in the art will also recognize that the functionalbuilding blocks, and other illustrative blocks, modules and componentsherein, can be implemented as illustrated or by discrete components,application specific integrated circuits, processors executingappropriate software and the like or any combination thereof.

Moreover, although described in detail for purposes of clarity andunderstanding by way of the aforementioned embodiments, various aspectsof the present invention are not limited to such embodiments. It will beobvious to one of average skill in the art that various changes andmodifications may be practiced within the spirit and scope of theinvention, as limited only by the scope of the appended claims.

What is claimed is:
 1. A communication device comprising: acommunication interface configured to receive, from a communicationchannel, a first signal and subsequently to receive a second signal; anda processor configured to identify and correct at least one bit-errorassociated with at least one bit-error location within at least one ofthe first signal or the second signal based on redundancy coded bitswithin the first signal and the second signal.
 2. The communicationdevice of claim 1 further comprising: the processor configured toidentify the at least one bit-error location within the at least one ofthe first signal or the second signal using cyclic redundancy check(CRC) redundancy coded bits within the first signal and the secondsignal.
 3. The communication device of claim 1 further comprising: theprocessor configured to identify at least one permutation syndromecorresponding to a cyclic redundancy check (CRC) remainder of the firstsignal for use in identification of the at least one bit-error location.4. The communication device of claim 1 further comprising: thecommunication interface configured to: receive the first signal fromanother communication device via the communication channel at or duringa first time; and receive the second signal from the anothercommunication device via the communication channel at or during a secondtime, wherein the second signal affected by the communication channeldifferently than first signal during transmission via the communicationchannel.
 5. The communication device of claim 1 further comprising: theprocessor configured to perform XOR processing of individual bits withineach of a first signal sequence and a second signal sequence to identifythe at least one bit-error location.
 6. The communication device ofclaim 1, wherein the redundancy coded bits includes a first group ofredundancy coded bits within the first signal and a second group ofredundancy coded bits within the second signal, and the redundancy codedbits are based on at least one of cyclic redundancy check (CRC) code,convolutional code, Reed-Solomon (RS) code, turbo code, turbo trelliscode modulation (TTCM) code, low density parity check (LDPC) code, orBCH (Bose and Ray-Chaudhuri, and Hocquenghem) code.
 7. The communicationdevice of claim 1, further comprising: the communication interfaceconfigured to transmit a request for retransmission of the first signalto another communication device configured to transmit the first signalto the communication device, wherein the second signal is theretransmission of the first signal.
 8. The communication device of claim1, wherein the communication device is operative within at least one ofa satellite communication system, a wireless communication system, awired communication system, or a fiber-optic communication system.
 9. Acommunication device comprising: a communication interface configuredto: receive a first signal from another communication device via acommunication channel at or during a first time; and receive a secondsignal from the another communication device via the communicationchannel at or during a second time, wherein the second signal affectedby the communication channel differently than first signal duringtransmission via the communication channel; and a processor configuredto: perform XOR processing of individual bits within each of a firstsignal sequence and a second signal sequence to identify at least onebit-error location within at least one of the first signal or the secondsignal; and correct at least one bit-error associated with the at leastone bit-error location within the at least one of the first signal orthe second signal based on redundancy coded bits within the first signaland the second signal.
 10. The communication device of claim 9 furthercomprising: the processor configured to identify at least onepermutation syndrome corresponding to a cyclic redundancy check (CRC)remainder of the first signal for use in identification of the at leastone bit-error location.
 11. The communication device of claim 9 furthercomprising: the communication interface configured to transmit a requestfor retransmission of the first signal to the another communicationdevice, wherein the second signal is the retransmission of the firstsignal.
 12. The communication device of claim 9, wherein the redundancycoded bits includes a first group of redundancy coded bits within thefirst signal and a second group of redundancy coded bits within thesecond signal, and the redundancy coded bits are based on at least oneof cyclic redundancy check (CRC) code, convolutional code, Reed-Solomon(RS) code, turbo code, turbo trellis code modulation (TTCM) code, lowdensity parity check (LDPC) code, or BCH (Bose and Ray-Chaudhuri, andHocquenghem) code.
 13. The communication device of claim 9, wherein thecommunication device is operative within at least one of a satellitecommunication system, a wireless communication system, a wiredcommunication system, or a fiber-optic communication system.
 14. Amethod for execution by a communication device, the method comprising:receiving, from a communication channel and via a communicationinterface of the communication device, a first signal and subsequentlyreceiving a second signal; identifying at least one bit-error locationwithin at least one of the first signal or the second signal based onredundancy coded bits within the first signal and the second signal; andcorrecting at least one bit-error associated with the at least onebit-error location to generate a corrected signal.
 15. The method ofclaim 14 further comprising: identifying the at least one bit-errorlocation within the at least one of the first signal or the secondsignal using cyclic redundancy check (CRC) redundancy coded bits withinthe first signal and the second signal.
 16. The method of claim 14further comprising: identifying at least one permutation syndromecorresponding to a cyclic redundancy check (CRC) remainder of the firstsignal for use in identification of the at least one bit-error location.17. The method of claim 14 further comprising: performing XOR processingof individual bits within each of a first signal sequence and a secondsignal sequence to identify the at least one bit-error location.
 18. Themethod of claim 14, wherein the redundancy coded bits includes a firstgroup of redundancy coded bits within the first signal and a secondgroup of redundancy coded bits within the second signal, and theredundancy coded bits are based on at least one of cyclic redundancycheck (CRC) code, convolutional code, Reed-Solomon (RS) code, turbocode, turbo trellis code modulation (TTCM) code, low density paritycheck (LDPC) code, or BCH (Bose and Ray-Chaudhuri, and Hocquenghem)code.
 19. The method of claim 14 further comprising: via thecommunication interface of the communication device, transmitting arequest for retransmission of the first signal to another communicationdevice configured to transmit the first signal to the communicationdevice, wherein the second signal is the retransmission of the firstsignal.
 20. The method of claim 14, wherein the communication device isoperative within at least one of a satellite communication system, awireless communication system, a wired communication system, or afiber-optic communication system.